package br.ufpb.di.ppgi.negocio.modelo.homologacao.proposta;

import java.io.Serializable;

import javax.persistence.Embeddable;
import javax.persistence.ManyToOne;

import br.ufpb.di.ppgi.negocio.modelo.proposta.Proposta;
import br.ufpb.di.ppgi.negocio.modelo.usuario.Usuario;

@Embeddable
public class HomologacaoPropostaPK implements Serializable{
	private static final long serialVersionUID = 2929205035086001097L;

	@ManyToOne(optional=false)
//	@Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.MERGE})
	private Proposta proposta;

	@ManyToOne(optional=false)
//	@Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.MERGE})
	private Usuario colegiado;

	public HomologacaoPropostaPK() {
		
	}
	
	public HomologacaoPropostaPK(Proposta proposta, Usuario colegiado) {
		this.proposta = proposta;
		this.colegiado = colegiado;
	}

	public Proposta getProposta() {
		return proposta;
	}

	public void setProposta(Proposta proposta) {
		this.proposta = proposta;
	}

	public Usuario getColegiado() {
		return colegiado;
	}

	public void setColegiado(Usuario colegiado) {
		this.colegiado = colegiado;
	}
	
	@Override
	public int hashCode() {
		int hash = 0;
		hash += proposta == null ? 0 : proposta.hashCode();
		hash += colegiado == null ? 0 : colegiado.hashCode();
		return hash;
	}
	
	@Override
	public boolean equals(Object object) {
		if(!(object instanceof HomologacaoPropostaPK)) {
			return false;
		}
		HomologacaoPropostaPK other = (HomologacaoPropostaPK) object;
		if(this.proposta == null || !this.proposta.equals(other.proposta))
			return false;
		if(this.colegiado == null || !this.colegiado.equals(other.colegiado))
			return false;
		return true;
	}
}
